package FileIO;

import java.io.File;
import java.util.Scanner;

/**
 * 需求：
 * 扫描指定⽬录，并找到名称中包含指定字符的所有普通⽂件（不包含⽬录），并且后续询问⽤⼾是否要删除该⽂件
 */
public class Demo7 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //  1. 输入要扫描的路径
        System.out.println("请输入要扫描的路径：");
        String rootPath = scanner.next();

        //  2. 输入需要查找指定字符
        System.out.println("请输入需要查找包含指定字符的文件：");
        String word = scanner.next();

        //  3. 判断用户输入的文件是否存在
        if (word.isEmpty()) {
            System.out.println("输入的文件名为空");
            return;
        }

        //  4. 创建File对象
        File file = new File(rootPath);

        //  5. 判断路径是否存在
        if (!file.isDirectory()) {
            System.out.println("路径输入错误!");
            return;
        }

        //  6. 获取指定路径下的所有⽂件
        findFile(file,word);

    }

    /**
     * 递归获取指定路径下的所有文件
     * @param rootPath
     * @param word
     */
    public static void findFile(File rootPath, String word) {
        File[] files = rootPath.listFiles();
        if (files == null) {
            return;
        }
        for (File file : files) {
            if (file.isFile()) {
                if (file.getName().contains(word)) {
                    System.out.println("是否删除该文件：(Y/N) " + file.getName());
                    Scanner scanner = new Scanner(System.in);
                    String input = scanner.next();
                    if (input.equals("Y") || input.equals("y")) {
                        file.delete();
                    } else {
                        System.out.println("取消删除");
                    }
                }
            } else if (file.isDirectory()) {
                findFile(file, word);
            } else {
            }
        }
    }


}
